Conventional computer networks are bi-directional, allowing data communication in both directions between servers and clients. Transmitting data over these bi-directional data networks has been a mainstay of computer technology for many years and the communication protocols are well established. Under conventional communication protocols, it is common for the client to initiate connection with the server and to request desired data from the server. As part of the request, the client sends information pertaining to how the data should be sent. For example, the client might include a client address, TCP port number, and so forth.
Digital data, whether transmitted over a wire-based distribution network (e.g., local area network, wide area network, cable, etc.) or a wireless distribution network (e.g., satellite, RF, paging, etc.), is typically packetized and sent over the network in individual packets. As the data packets are sent, both the server and client carefully track every packet. If a packet is lost during transmission, the server and client contact one another and the lost packet is resent.
Apart from the classic bi-directional data networks, there is an increasing interest in the use of broadcast or multicast networks to deliver computer data and other content to clients. These types of distribution networks are unidirectional in that data flows from the server to the clients, but no return communication is possible over the same communication path. As a result, the broadcast network cannot support the common protocols used for two-way communication over a bi-directional network, such as client-driven connections and data requests, because the clients are unable to communicate over the broadcast communication link to the server.
One problem that arises in the transmission of data packets over a unidirectional network is the occasional loss of data packets during transmission. The absence of a return communication path from the client to the server over the unidirectional network renders it impossible for the client to ask the server to resend the missing packet. As a result, the server blindly sends the packets over the unidirectional network and hopes the client receives all of the sent packets. The problem is amplified in broadcast or multicast environments where the server is sending the packets out to many clients, all of whom may be dropping different data packets.
The inventors have developed a system and method which address this problem.